from enum import IntEnum
from typing import overload, NewType, Optional, Tuple

from OCC.Core.Standard import *
from OCC.Core.NCollection import *


class gp_TrsfForm(IntEnum):
	gp_Identity: int = ...
	gp_Rotation: int = ...
	gp_Translation: int = ...
	gp_PntMirror: int = ...
	gp_Ax1Mirror: int = ...
	gp_Ax2Mirror: int = ...
	gp_Scale: int = ...
	gp_CompoundTrsf: int = ...
	gp_Other: int = ...
gp_Identity = gp_TrsfForm.gp_Identity
gp_Rotation = gp_TrsfForm.gp_Rotation
gp_Translation = gp_TrsfForm.gp_Translation
gp_PntMirror = gp_TrsfForm.gp_PntMirror
gp_Ax1Mirror = gp_TrsfForm.gp_Ax1Mirror
gp_Ax2Mirror = gp_TrsfForm.gp_Ax2Mirror
gp_Scale = gp_TrsfForm.gp_Scale
gp_CompoundTrsf = gp_TrsfForm.gp_CompoundTrsf
gp_Other = gp_TrsfForm.gp_Other

class gp_EulerSequence(IntEnum):
	gp_EulerAngles: int = ...
	gp_YawPitchRoll: int = ...
	gp_Extrinsic_XYZ: int = ...
	gp_Extrinsic_XZY: int = ...
	gp_Extrinsic_YZX: int = ...
	gp_Extrinsic_YXZ: int = ...
	gp_Extrinsic_ZXY: int = ...
	gp_Extrinsic_ZYX: int = ...
	gp_Intrinsic_XYZ: int = ...
	gp_Intrinsic_XZY: int = ...
	gp_Intrinsic_YZX: int = ...
	gp_Intrinsic_YXZ: int = ...
	gp_Intrinsic_ZXY: int = ...
	gp_Intrinsic_ZYX: int = ...
	gp_Extrinsic_XYX: int = ...
	gp_Extrinsic_XZX: int = ...
	gp_Extrinsic_YZY: int = ...
	gp_Extrinsic_YXY: int = ...
	gp_Extrinsic_ZYZ: int = ...
	gp_Extrinsic_ZXZ: int = ...
	gp_Intrinsic_XYX: int = ...
	gp_Intrinsic_XZX: int = ...
	gp_Intrinsic_YZY: int = ...
	gp_Intrinsic_YXY: int = ...
	gp_Intrinsic_ZXZ: int = ...
	gp_Intrinsic_ZYZ: int = ...
gp_EulerAngles = gp_EulerSequence.gp_EulerAngles
gp_YawPitchRoll = gp_EulerSequence.gp_YawPitchRoll
gp_Extrinsic_XYZ = gp_EulerSequence.gp_Extrinsic_XYZ
gp_Extrinsic_XZY = gp_EulerSequence.gp_Extrinsic_XZY
gp_Extrinsic_YZX = gp_EulerSequence.gp_Extrinsic_YZX
gp_Extrinsic_YXZ = gp_EulerSequence.gp_Extrinsic_YXZ
gp_Extrinsic_ZXY = gp_EulerSequence.gp_Extrinsic_ZXY
gp_Extrinsic_ZYX = gp_EulerSequence.gp_Extrinsic_ZYX
gp_Intrinsic_XYZ = gp_EulerSequence.gp_Intrinsic_XYZ
gp_Intrinsic_XZY = gp_EulerSequence.gp_Intrinsic_XZY
gp_Intrinsic_YZX = gp_EulerSequence.gp_Intrinsic_YZX
gp_Intrinsic_YXZ = gp_EulerSequence.gp_Intrinsic_YXZ
gp_Intrinsic_ZXY = gp_EulerSequence.gp_Intrinsic_ZXY
gp_Intrinsic_ZYX = gp_EulerSequence.gp_Intrinsic_ZYX
gp_Extrinsic_XYX = gp_EulerSequence.gp_Extrinsic_XYX
gp_Extrinsic_XZX = gp_EulerSequence.gp_Extrinsic_XZX
gp_Extrinsic_YZY = gp_EulerSequence.gp_Extrinsic_YZY
gp_Extrinsic_YXY = gp_EulerSequence.gp_Extrinsic_YXY
gp_Extrinsic_ZYZ = gp_EulerSequence.gp_Extrinsic_ZYZ
gp_Extrinsic_ZXZ = gp_EulerSequence.gp_Extrinsic_ZXZ
gp_Intrinsic_XYX = gp_EulerSequence.gp_Intrinsic_XYX
gp_Intrinsic_XZX = gp_EulerSequence.gp_Intrinsic_XZX
gp_Intrinsic_YZY = gp_EulerSequence.gp_Intrinsic_YZY
gp_Intrinsic_YXY = gp_EulerSequence.gp_Intrinsic_YXY
gp_Intrinsic_ZXZ = gp_EulerSequence.gp_Intrinsic_ZXZ
gp_Intrinsic_ZYZ = gp_EulerSequence.gp_Intrinsic_ZYZ

class gp:
	@staticmethod
	def DX() -> gp_Dir: ...
	@staticmethod
	def DX2d() -> gp_Dir2d: ...
	@staticmethod
	def DY() -> gp_Dir: ...
	@staticmethod
	def DY2d() -> gp_Dir2d: ...
	@staticmethod
	def DZ() -> gp_Dir: ...
	@staticmethod
	def OX() -> gp_Ax1: ...
	@staticmethod
	def OX2d() -> gp_Ax2d: ...
	@staticmethod
	def OY() -> gp_Ax1: ...
	@staticmethod
	def OY2d() -> gp_Ax2d: ...
	@staticmethod
	def OZ() -> gp_Ax1: ...
	@staticmethod
	def Origin() -> gp_Pnt: ...
	@staticmethod
	def Origin2d() -> gp_Pnt2d: ...
	@staticmethod
	def Resolution() -> float: ...
	@staticmethod
	def XOY() -> gp_Ax2: ...
	@staticmethod
	def YOZ() -> gp_Ax2: ...
	@staticmethod
	def ZOX() -> gp_Ax2: ...

class gp_Ax1:
	@overload
	def __init__(self) -> None: ...
	@overload
	def __init__(self, P: gp_Pnt, V: gp_Dir) -> None: ...
	def Angle(self, Other: gp_Ax1) -> float: ...
	def Direction(self) -> gp_Dir: ...
	def IsCoaxial(self, Other: gp_Ax1, AngularTolerance: float, LinearTolerance: float) -> bool: ...
	def IsNormal(self, Other: gp_Ax1, AngularTolerance: float) -> bool: ...
	def IsOpposite(self, Other: gp_Ax1, AngularTolerance: float) -> bool: ...
	def IsParallel(self, Other: gp_Ax1, AngularTolerance: float) -> bool: ...
	def Location(self) -> gp_Pnt: ...
	@overload
	def Mirror(self, P: gp_Pnt) -> None: ...
	@overload
	def Mirror(self, A1: gp_Ax1) -> None: ...
	@overload
	def Mirror(self, A2: gp_Ax2) -> None: ...
	@overload
	def Mirrored(self, P: gp_Pnt) -> gp_Ax1: ...
	@overload
	def Mirrored(self, A1: gp_Ax1) -> gp_Ax1: ...
	@overload
	def Mirrored(self, A2: gp_Ax2) -> gp_Ax1: ...
	def Reverse(self) -> None: ...
	def Reversed(self) -> gp_Ax1: ...
	def Rotate(self, A1: gp_Ax1, Ang: float) -> None: ...
	def Rotated(self, A1: gp_Ax1, Ang: float) -> gp_Ax1: ...
	def Scale(self, P: gp_Pnt, S: float) -> None: ...
	def Scaled(self, P: gp_Pnt, S: float) -> gp_Ax1: ...
	def SetDirection(self, V: gp_Dir) -> None: ...
	def SetLocation(self, P: gp_Pnt) -> None: ...
	def Transform(self, T: gp_Trsf) -> None: ...
	def Transformed(self, T: gp_Trsf) -> gp_Ax1: ...
	@overload
	def Translate(self, V: gp_Vec) -> None: ...
	@overload
	def Translate(self, P1: gp_Pnt, P2: gp_Pnt) -> None: ...
	@overload
	def Translated(self, V: gp_Vec) -> gp_Ax1: ...
	@overload
	def Translated(self, P1: gp_Pnt, P2: gp_Pnt) -> gp_Ax1: ...

class gp_Ax2:
	@overload
	def __init__(self) -> None: ...
	@overload
	def __init__(self, P: gp_Pnt, N: gp_Dir, Vx: gp_Dir) -> None: ...
	@overload
	def __init__(self, P: gp_Pnt, V: gp_Dir) -> None: ...
	def Angle(self, Other: gp_Ax2) -> float: ...
	def Axis(self) -> gp_Ax1: ...
	def Direction(self) -> gp_Dir: ...
	@overload
	def IsCoplanar(self, Other: gp_Ax2, LinearTolerance: float, AngularTolerance: float) -> bool: ...
	@overload
	def IsCoplanar(self, A1: gp_Ax1, LinearTolerance: float, AngularTolerance: float) -> bool: ...
	def Location(self) -> gp_Pnt: ...
	@overload
	def Mirror(self, P: gp_Pnt) -> None: ...
	@overload
	def Mirror(self, A1: gp_Ax1) -> None: ...
	@overload
	def Mirror(self, A2: gp_Ax2) -> None: ...
	@overload
	def Mirrored(self, P: gp_Pnt) -> gp_Ax2: ...
	@overload
	def Mirrored(self, A1: gp_Ax1) -> gp_Ax2: ...
	@overload
	def Mirrored(self, A2: gp_Ax2) -> gp_Ax2: ...
	def Rotate(self, A1: gp_Ax1, Ang: float) -> None: ...
	def Rotated(self, A1: gp_Ax1, Ang: float) -> gp_Ax2: ...
	def Scale(self, P: gp_Pnt, S: float) -> None: ...
	def Scaled(self, P: gp_Pnt, S: float) -> gp_Ax2: ...
	def SetAxis(self, A1: gp_Ax1) -> None: ...
	def SetDirection(self, V: gp_Dir) -> None: ...
	def SetLocation(self, P: gp_Pnt) -> None: ...
	def SetXDirection(self, Vx: gp_Dir) -> None: ...
	def SetYDirection(self, Vy: gp_Dir) -> None: ...
	def Transform(self, T: gp_Trsf) -> None: ...
	def Transformed(self, T: gp_Trsf) -> gp_Ax2: ...
	@overload
	def Translate(self, V: gp_Vec) -> None: ...
	@overload
	def Translate(self, P1: gp_Pnt, P2: gp_Pnt) -> None: ...
	@overload
	def Translated(self, V: gp_Vec) -> gp_Ax2: ...
	@overload
	def Translated(self, P1: gp_Pnt, P2: gp_Pnt) -> gp_Ax2: ...
	def XDirection(self) -> gp_Dir: ...
	def YDirection(self) -> gp_Dir: ...

class gp_Ax22d:
	@overload
	def __init__(self) -> None: ...
	@overload
	def __init__(self, P: gp_Pnt2d, Vx: gp_Dir2d, Vy: gp_Dir2d) -> None: ...
	@overload
	def __init__(self, P: gp_Pnt2d, V: gp_Dir2d, Sense: Optional[bool] = True) -> None: ...
	@overload
	def __init__(self, A: gp_Ax2d, Sense: Optional[bool] = True) -> None: ...
	def Location(self) -> gp_Pnt2d: ...
	@overload
	def Mirror(self, P: gp_Pnt2d) -> None: ...
	@overload
	def Mirror(self, A: gp_Ax2d) -> None: ...
	@overload
	def Mirrored(self, P: gp_Pnt2d) -> gp_Ax22d: ...
	@overload
	def Mirrored(self, A: gp_Ax2d) -> gp_Ax22d: ...
	def Rotate(self, P: gp_Pnt2d, Ang: float) -> None: ...
	def Rotated(self, P: gp_Pnt2d, Ang: float) -> gp_Ax22d: ...
	def Scale(self, P: gp_Pnt2d, S: float) -> None: ...
	def Scaled(self, P: gp_Pnt2d, S: float) -> gp_Ax22d: ...
	def SetAxis(self, A1: gp_Ax22d) -> None: ...
	def SetLocation(self, P: gp_Pnt2d) -> None: ...
	def SetXAxis(self, A1: gp_Ax2d) -> None: ...
	def SetXDirection(self, Vx: gp_Dir2d) -> None: ...
	def SetYAxis(self, A1: gp_Ax2d) -> None: ...
	def SetYDirection(self, Vy: gp_Dir2d) -> None: ...
	def Transform(self, T: gp_Trsf2d) -> None: ...
	def Transformed(self, T: gp_Trsf2d) -> gp_Ax22d: ...
	@overload
	def Translate(self, V: gp_Vec2d) -> None: ...
	@overload
	def Translate(self, P1: gp_Pnt2d, P2: gp_Pnt2d) -> None: ...
	@overload
	def Translated(self, V: gp_Vec2d) -> gp_Ax22d: ...
	@overload
	def Translated(self, P1: gp_Pnt2d, P2: gp_Pnt2d) -> gp_Ax22d: ...
	def XAxis(self) -> gp_Ax2d: ...
	def XDirection(self) -> gp_Dir2d: ...
	def YAxis(self) -> gp_Ax2d: ...
	def YDirection(self) -> gp_Dir2d: ...

class gp_Ax2d:
	@overload
	def __init__(self) -> None: ...
	@overload
	def __init__(self, P: gp_Pnt2d, V: gp_Dir2d) -> None: ...
	def Angle(self, Other: gp_Ax2d) -> float: ...
	def Direction(self) -> gp_Dir2d: ...
	def IsCoaxial(self, Other: gp_Ax2d, AngularTolerance: float, LinearTolerance: float) -> bool: ...
	def IsNormal(self, Other: gp_Ax2d, AngularTolerance: float) -> bool: ...
	def IsOpposite(self, Other: gp_Ax2d, AngularTolerance: float) -> bool: ...
	def IsParallel(self, Other: gp_Ax2d, AngularTolerance: float) -> bool: ...
	def Location(self) -> gp_Pnt2d: ...
	@overload
	def Mirror(self, P: gp_Pnt2d) -> None: ...
	@overload
	def Mirror(self, A: gp_Ax2d) -> None: ...
	@overload
	def Mirrored(self, P: gp_Pnt2d) -> gp_Ax2d: ...
	@overload
	def Mirrored(self, A: gp_Ax2d) -> gp_Ax2d: ...
	def Reverse(self) -> None: ...
	def Reversed(self) -> gp_Ax2d: ...
	def Rotate(self, P: gp_Pnt2d, Ang: float) -> None: ...
	def Rotated(self, P: gp_Pnt2d, Ang: float) -> gp_Ax2d: ...
	def Scale(self, P: gp_Pnt2d, S: float) -> None: ...
	def Scaled(self, P: gp_Pnt2d, S: float) -> gp_Ax2d: ...
	def SetDirection(self, V: gp_Dir2d) -> None: ...
	def SetLocation(self, Locat: gp_Pnt2d) -> None: ...
	def Transform(self, T: gp_Trsf2d) -> None: ...
	def Transformed(self, T: gp_Trsf2d) -> gp_Ax2d: ...
	@overload
	def Translate(self, V: gp_Vec2d) -> None: ...
	@overload
	def Translate(self, P1: gp_Pnt2d, P2: gp_Pnt2d) -> None: ...
	@overload
	def Translated(self, V: gp_Vec2d) -> gp_Ax2d: ...
	@overload
	def Translated(self, P1: gp_Pnt2d, P2: gp_Pnt2d) -> gp_Ax2d: ...

class gp_Ax3:
	@overload
	def __init__(self) -> None: ...
	@overload
	def __init__(self, A: gp_Ax2) -> None: ...
	@overload
	def __init__(self, P: gp_Pnt, N: gp_Dir, Vx: gp_Dir) -> None: ...
	@overload
	def __init__(self, P: gp_Pnt, V: gp_Dir) -> None: ...
	def Angle(self, Other: gp_Ax3) -> float: ...
	def Ax2(self) -> gp_Ax2: ...
	def Axis(self) -> gp_Ax1: ...
	def Direct(self) -> bool: ...
	def Direction(self) -> gp_Dir: ...
	@overload
	def IsCoplanar(self, Other: gp_Ax3, LinearTolerance: float, AngularTolerance: float) -> bool: ...
	@overload
	def IsCoplanar(self, A1: gp_Ax1, LinearTolerance: float, AngularTolerance: float) -> bool: ...
	def Location(self) -> gp_Pnt: ...
	@overload
	def Mirror(self, P: gp_Pnt) -> None: ...
	@overload
	def Mirror(self, A1: gp_Ax1) -> None: ...
	@overload
	def Mirror(self, A2: gp_Ax2) -> None: ...
	@overload
	def Mirrored(self, P: gp_Pnt) -> gp_Ax3: ...
	@overload
	def Mirrored(self, A1: gp_Ax1) -> gp_Ax3: ...
	@overload
	def Mirrored(self, A2: gp_Ax2) -> gp_Ax3: ...
	def Rotate(self, A1: gp_Ax1, Ang: float) -> None: ...
	def Rotated(self, A1: gp_Ax1, Ang: float) -> gp_Ax3: ...
	def Scale(self, P: gp_Pnt, S: float) -> None: ...
	def Scaled(self, P: gp_Pnt, S: float) -> gp_Ax3: ...
	def SetAxis(self, A1: gp_Ax1) -> None: ...
	def SetDirection(self, V: gp_Dir) -> None: ...
	def SetLocation(self, P: gp_Pnt) -> None: ...
	def SetXDirection(self, Vx: gp_Dir) -> None: ...
	def SetYDirection(self, Vy: gp_Dir) -> None: ...
	def Transform(self, T: gp_Trsf) -> None: ...
	def Transformed(self, T: gp_Trsf) -> gp_Ax3: ...
	@overload
	def Translate(self, V: gp_Vec) -> None: ...
	@overload
	def Translate(self, P1: gp_Pnt, P2: gp_Pnt) -> None: ...
	@overload
	def Translated(self, V: gp_Vec) -> gp_Ax3: ...
	@overload
	def Translated(self, P1: gp_Pnt, P2: gp_Pnt) -> gp_Ax3: ...
	def XDirection(self) -> gp_Dir: ...
	def XReverse(self) -> None: ...
	def YDirection(self) -> gp_Dir: ...
	def YReverse(self) -> None: ...
	def ZReverse(self) -> None: ...

class gp_Circ:
	@overload
	def __init__(self) -> None: ...
	@overload
	def __init__(self, A2: gp_Ax2, Radius: float) -> None: ...
	def Area(self) -> float: ...
	def Axis(self) -> gp_Ax1: ...
	def Contains(self, P: gp_Pnt, LinearTolerance: float) -> bool: ...
	def Distance(self, P: gp_Pnt) -> float: ...
	def Length(self) -> float: ...
	def Location(self) -> gp_Pnt: ...
	@overload
	def Mirror(self, P: gp_Pnt) -> None: ...
	@overload
	def Mirror(self, A1: gp_Ax1) -> None: ...
	@overload
	def Mirror(self, A2: gp_Ax2) -> None: ...
	@overload
	def Mirrored(self, P: gp_Pnt) -> gp_Circ: ...
	@overload
	def Mirrored(self, A1: gp_Ax1) -> gp_Circ: ...
	@overload
	def Mirrored(self, A2: gp_Ax2) -> gp_Circ: ...
	def Position(self) -> gp_Ax2: ...
	def Radius(self) -> float: ...
	def Rotate(self, A1: gp_Ax1, Ang: float) -> None: ...
	def Rotated(self, A1: gp_Ax1, Ang: float) -> gp_Circ: ...
	def Scale(self, P: gp_Pnt, S: float) -> None: ...
	def Scaled(self, P: gp_Pnt, S: float) -> gp_Circ: ...
	def SetAxis(self, A1: gp_Ax1) -> None: ...
	def SetLocation(self, P: gp_Pnt) -> None: ...
	def SetPosition(self, A2: gp_Ax2) -> None: ...
	def SetRadius(self, Radius: float) -> None: ...
	def SquareDistance(self, P: gp_Pnt) -> float: ...
	def Transform(self, T: gp_Trsf) -> None: ...
	def Transformed(self, T: gp_Trsf) -> gp_Circ: ...
	@overload
	def Translate(self, V: gp_Vec) -> None: ...
	@overload
	def Translate(self, P1: gp_Pnt, P2: gp_Pnt) -> None: ...
	@overload
	def Translated(self, V: gp_Vec) -> gp_Circ: ...
	@overload
	def Translated(self, P1: gp_Pnt, P2: gp_Pnt) -> gp_Circ: ...
	def XAxis(self) -> gp_Ax1: ...
	def YAxis(self) -> gp_Ax1: ...

class gp_Circ2d:
	@overload
	def __init__(self) -> None: ...
	@overload
	def __init__(self, XAxis: gp_Ax2d, Radius: float, Sense: Optional[bool] = True) -> None: ...
	@overload
	def __init__(self, Axis: gp_Ax22d, Radius: float) -> None: ...
	def Area(self) -> float: ...
	def Axis(self) -> gp_Ax22d: ...
	def Coefficients(self) -> Tuple[float, float, float, float, float, float]: ...
	def Contains(self, P: gp_Pnt2d, LinearTolerance: float) -> bool: ...
	def Distance(self, P: gp_Pnt2d) -> float: ...
	def IsDirect(self) -> bool: ...
	def Length(self) -> float: ...
	def Location(self) -> gp_Pnt2d: ...
	@overload
	def Mirror(self, P: gp_Pnt2d) -> None: ...
	@overload
	def Mirror(self, A: gp_Ax2d) -> None: ...
	@overload
	def Mirrored(self, P: gp_Pnt2d) -> gp_Circ2d: ...
	@overload
	def Mirrored(self, A: gp_Ax2d) -> gp_Circ2d: ...
	def Position(self) -> gp_Ax22d: ...
	def Radius(self) -> float: ...
	def Reverse(self) -> None: ...
	def Reversed(self) -> gp_Circ2d: ...
	def Rotate(self, P: gp_Pnt2d, Ang: float) -> None: ...
	def Rotated(self, P: gp_Pnt2d, Ang: float) -> gp_Circ2d: ...
	def Scale(self, P: gp_Pnt2d, S: float) -> None: ...
	def Scaled(self, P: gp_Pnt2d, S: float) -> gp_Circ2d: ...
	def SetAxis(self, A: gp_Ax22d) -> None: ...
	def SetLocation(self, P: gp_Pnt2d) -> None: ...
	def SetRadius(self, Radius: float) -> None: ...
	def SetXAxis(self, A: gp_Ax2d) -> None: ...
	def SetYAxis(self, A: gp_Ax2d) -> None: ...
	def SquareDistance(self, P: gp_Pnt2d) -> float: ...
	def Transform(self, T: gp_Trsf2d) -> None: ...
	def Transformed(self, T: gp_Trsf2d) -> gp_Circ2d: ...
	@overload
	def Translate(self, V: gp_Vec2d) -> None: ...
	@overload
	def Translate(self, P1: gp_Pnt2d, P2: gp_Pnt2d) -> None: ...
	@overload
	def Translated(self, V: gp_Vec2d) -> gp_Circ2d: ...
	@overload
	def Translated(self, P1: gp_Pnt2d, P2: gp_Pnt2d) -> gp_Circ2d: ...
	def XAxis(self) -> gp_Ax2d: ...
	def YAxis(self) -> gp_Ax2d: ...

class gp_Cone:
	@overload
	def __init__(self) -> None: ...
	@overload
	def __init__(self, A3: gp_Ax3, Ang: float, Radius: float) -> None: ...
	def Apex(self) -> gp_Pnt: ...
	def Axis(self) -> gp_Ax1: ...
	def Coefficients(self) -> Tuple[float, float, float, float, float, float, float, float, float, float]: ...
	def Direct(self) -> bool: ...
	def Location(self) -> gp_Pnt: ...
	@overload
	def Mirror(self, P: gp_Pnt) -> None: ...
	@overload
	def Mirror(self, A1: gp_Ax1) -> None: ...
	@overload
	def Mirror(self, A2: gp_Ax2) -> None: ...
	@overload
	def Mirrored(self, P: gp_Pnt) -> gp_Cone: ...
	@overload
	def Mirrored(self, A1: gp_Ax1) -> gp_Cone: ...
	@overload
	def Mirrored(self, A2: gp_Ax2) -> gp_Cone: ...
	def Position(self) -> gp_Ax3: ...
	def RefRadius(self) -> float: ...
	def Rotate(self, A1: gp_Ax1, Ang: float) -> None: ...
	def Rotated(self, A1: gp_Ax1, Ang: float) -> gp_Cone: ...
	def Scale(self, P: gp_Pnt, S: float) -> None: ...
	def Scaled(self, P: gp_Pnt, S: float) -> gp_Cone: ...
	def SemiAngle(self) -> float: ...
	def SetAxis(self, A1: gp_Ax1) -> None: ...
	def SetLocation(self, Loc: gp_Pnt) -> None: ...
	def SetPosition(self, A3: gp_Ax3) -> None: ...
	def SetRadius(self, R: float) -> None: ...
	def SetSemiAngle(self, Ang: float) -> None: ...
	def Transform(self, T: gp_Trsf) -> None: ...
	def Transformed(self, T: gp_Trsf) -> gp_Cone: ...
	@overload
	def Translate(self, V: gp_Vec) -> None: ...
	@overload
	def Translate(self, P1: gp_Pnt, P2: gp_Pnt) -> None: ...
	@overload
	def Translated(self, V: gp_Vec) -> gp_Cone: ...
	@overload
	def Translated(self, P1: gp_Pnt, P2: gp_Pnt) -> gp_Cone: ...
	def UReverse(self) -> None: ...
	def VReverse(self) -> None: ...
	def XAxis(self) -> gp_Ax1: ...
	def YAxis(self) -> gp_Ax1: ...

class gp_Cylinder:
	@overload
	def __init__(self) -> None: ...
	@overload
	def __init__(self, A3: gp_Ax3, Radius: float) -> None: ...
	def Axis(self) -> gp_Ax1: ...
	def Coefficients(self) -> Tuple[float, float, float, float, float, float, float, float, float, float]: ...
	def Direct(self) -> bool: ...
	def Location(self) -> gp_Pnt: ...
	@overload
	def Mirror(self, P: gp_Pnt) -> None: ...
	@overload
	def Mirror(self, A1: gp_Ax1) -> None: ...
	@overload
	def Mirror(self, A2: gp_Ax2) -> None: ...
	@overload
	def Mirrored(self, P: gp_Pnt) -> gp_Cylinder: ...
	@overload
	def Mirrored(self, A1: gp_Ax1) -> gp_Cylinder: ...
	@overload
	def Mirrored(self, A2: gp_Ax2) -> gp_Cylinder: ...
	def Position(self) -> gp_Ax3: ...
	def Radius(self) -> float: ...
	def Rotate(self, A1: gp_Ax1, Ang: float) -> None: ...
	def Rotated(self, A1: gp_Ax1, Ang: float) -> gp_Cylinder: ...
	def Scale(self, P: gp_Pnt, S: float) -> None: ...
	def Scaled(self, P: gp_Pnt, S: float) -> gp_Cylinder: ...
	def SetAxis(self, A1: gp_Ax1) -> None: ...
	def SetLocation(self, Loc: gp_Pnt) -> None: ...
	def SetPosition(self, A3: gp_Ax3) -> None: ...
	def SetRadius(self, R: float) -> None: ...
	def Transform(self, T: gp_Trsf) -> None: ...
	def Transformed(self, T: gp_Trsf) -> gp_Cylinder: ...
	@overload
	def Translate(self, V: gp_Vec) -> None: ...
	@overload
	def Translate(self, P1: gp_Pnt, P2: gp_Pnt) -> None: ...
	@overload
	def Translated(self, V: gp_Vec) -> gp_Cylinder: ...
	@overload
	def Translated(self, P1: gp_Pnt, P2: gp_Pnt) -> gp_Cylinder: ...
	def UReverse(self) -> None: ...
	def VReverse(self) -> None: ...
	def XAxis(self) -> gp_Ax1: ...
	def YAxis(self) -> gp_Ax1: ...

class gp_Dir:
	@overload
	def __init__(self) -> None: ...
	@overload
	def __init__(self, V: gp_Vec) -> None: ...
	@overload
	def __init__(self, Coord: gp_XYZ) -> None: ...
	@overload
	def __init__(self, Xv: float, Yv: float, Zv: float) -> None: ...
	def Angle(self, Other: gp_Dir) -> float: ...
	def AngleWithRef(self, Other: gp_Dir, VRef: gp_Dir) -> float: ...
	@overload
	def Coord(self, Index: int) -> float: ...
	@overload
	def Coord(self) -> Tuple[float, float, float]: ...
	def Cross(self, Right: gp_Dir) -> None: ...
	def CrossCross(self, V1: gp_Dir, V2: gp_Dir) -> None: ...
	def CrossCrossed(self, V1: gp_Dir, V2: gp_Dir) -> gp_Dir: ...
	def Crossed(self, Right: gp_Dir) -> gp_Dir: ...
	def Dot(self, Other: gp_Dir) -> float: ...
	def DotCross(self, V1: gp_Dir, V2: gp_Dir) -> float: ...
	def IsEqual(self, Other: gp_Dir, AngularTolerance: float) -> bool: ...
	def IsNormal(self, Other: gp_Dir, AngularTolerance: float) -> bool: ...
	def IsOpposite(self, Other: gp_Dir, AngularTolerance: float) -> bool: ...
	def IsParallel(self, Other: gp_Dir, AngularTolerance: float) -> bool: ...
	@overload
	def Mirror(self, V: gp_Dir) -> None: ...
	@overload
	def Mirror(self, A1: gp_Ax1) -> None: ...
	@overload
	def Mirror(self, A2: gp_Ax2) -> None: ...
	@overload
	def Mirrored(self, V: gp_Dir) -> gp_Dir: ...
	@overload
	def Mirrored(self, A1: gp_Ax1) -> gp_Dir: ...
	@overload
	def Mirrored(self, A2: gp_Ax2) -> gp_Dir: ...
	def Reverse(self) -> None: ...
	def Reversed(self) -> gp_Dir: ...
	def Rotate(self, A1: gp_Ax1, Ang: float) -> None: ...
	def Rotated(self, A1: gp_Ax1, Ang: float) -> gp_Dir: ...
	@overload
	def SetCoord(self, Index: int, Xi: float) -> None: ...
	@overload
	def SetCoord(self, Xv: float, Yv: float, Zv: float) -> None: ...
	def SetX(self, X: float) -> None: ...
	def SetXYZ(self, Coord: gp_XYZ) -> None: ...
	def SetY(self, Y: float) -> None: ...
	def SetZ(self, Z: float) -> None: ...
	def Transform(self, T: gp_Trsf) -> None: ...
	def Transformed(self, T: gp_Trsf) -> gp_Dir: ...
	def X(self) -> float: ...
	def XYZ(self) -> gp_XYZ: ...
	def Y(self) -> float: ...
	def Z(self) -> float: ...

class gp_Dir2d:
	@overload
	def __init__(self) -> None: ...
	@overload
	def __init__(self, V: gp_Vec2d) -> None: ...
	@overload
	def __init__(self, Coord: gp_XY) -> None: ...
	@overload
	def __init__(self, Xv: float, Yv: float) -> None: ...
	def Angle(self, Other: gp_Dir2d) -> float: ...
	@overload
	def Coord(self, Index: int) -> float: ...
	@overload
	def Coord(self) -> Tuple[float, float]: ...
	def Crossed(self, Right: gp_Dir2d) -> float: ...
	def Dot(self, Other: gp_Dir2d) -> float: ...
	def IsEqual(self, Other: gp_Dir2d, AngularTolerance: float) -> bool: ...
	def IsNormal(self, Other: gp_Dir2d, AngularTolerance: float) -> bool: ...
	def IsOpposite(self, Other: gp_Dir2d, AngularTolerance: float) -> bool: ...
	def IsParallel(self, Other: gp_Dir2d, AngularTolerance: float) -> bool: ...
	@overload
	def Mirror(self, V: gp_Dir2d) -> None: ...
	@overload
	def Mirror(self, A: gp_Ax2d) -> None: ...
	@overload
	def Mirrored(self, V: gp_Dir2d) -> gp_Dir2d: ...
	@overload
	def Mirrored(self, A: gp_Ax2d) -> gp_Dir2d: ...
	def Reverse(self) -> None: ...
	def Reversed(self) -> gp_Dir2d: ...
	def Rotate(self, Ang: float) -> None: ...
	def Rotated(self, Ang: float) -> gp_Dir2d: ...
	@overload
	def SetCoord(self, Index: int, Xi: float) -> None: ...
	@overload
	def SetCoord(self, Xv: float, Yv: float) -> None: ...
	def SetX(self, X: float) -> None: ...
	def SetXY(self, Coord: gp_XY) -> None: ...
	def SetY(self, Y: float) -> None: ...
	def Transform(self, T: gp_Trsf2d) -> None: ...
	def Transformed(self, T: gp_Trsf2d) -> gp_Dir2d: ...
	def X(self) -> float: ...
	def XY(self) -> gp_XY: ...
	def Y(self) -> float: ...

class gp_Elips:
	@overload
	def __init__(self) -> None: ...
	@overload
	def __init__(self, A2: gp_Ax2, MajorRadius: float, MinorRadius: float) -> None: ...
	def Area(self) -> float: ...
	def Axis(self) -> gp_Ax1: ...
	def Directrix1(self) -> gp_Ax1: ...
	def Directrix2(self) -> gp_Ax1: ...
	def Eccentricity(self) -> float: ...
	def Focal(self) -> float: ...
	def Focus1(self) -> gp_Pnt: ...
	def Focus2(self) -> gp_Pnt: ...
	def Location(self) -> gp_Pnt: ...
	def MajorRadius(self) -> float: ...
	def MinorRadius(self) -> float: ...
	@overload
	def Mirror(self, P: gp_Pnt) -> None: ...
	@overload
	def Mirror(self, A1: gp_Ax1) -> None: ...
	@overload
	def Mirror(self, A2: gp_Ax2) -> None: ...
	@overload
	def Mirrored(self, P: gp_Pnt) -> gp_Elips: ...
	@overload
	def Mirrored(self, A1: gp_Ax1) -> gp_Elips: ...
	@overload
	def Mirrored(self, A2: gp_Ax2) -> gp_Elips: ...
	def Parameter(self) -> float: ...
	def Position(self) -> gp_Ax2: ...
	def Rotate(self, A1: gp_Ax1, Ang: float) -> None: ...
	def Rotated(self, A1: gp_Ax1, Ang: float) -> gp_Elips: ...
	def Scale(self, P: gp_Pnt, S: float) -> None: ...
	def Scaled(self, P: gp_Pnt, S: float) -> gp_Elips: ...
	def SetAxis(self, A1: gp_Ax1) -> None: ...
	def SetLocation(self, P: gp_Pnt) -> None: ...
	def SetMajorRadius(self, MajorRadius: float) -> None: ...
	def SetMinorRadius(self, MinorRadius: float) -> None: ...
	def SetPosition(self, A2: gp_Ax2) -> None: ...
	def Transform(self, T: gp_Trsf) -> None: ...
	def Transformed(self, T: gp_Trsf) -> gp_Elips: ...
	@overload
	def Translate(self, V: gp_Vec) -> None: ...
	@overload
	def Translate(self, P1: gp_Pnt, P2: gp_Pnt) -> None: ...
	@overload
	def Translated(self, V: gp_Vec) -> gp_Elips: ...
	@overload
	def Translated(self, P1: gp_Pnt, P2: gp_Pnt) -> gp_Elips: ...
	def XAxis(self) -> gp_Ax1: ...
	def YAxis(self) -> gp_Ax1: ...

class gp_Elips2d:
	@overload
	def __init__(self) -> None: ...
	@overload
	def __init__(self, MajorAxis: gp_Ax2d, MajorRadius: float, MinorRadius: float, Sense: Optional[bool] = True) -> None: ...
	@overload
	def __init__(self, A: gp_Ax22d, MajorRadius: float, MinorRadius: float) -> None: ...
	def Area(self) -> float: ...
	def Axis(self) -> gp_Ax22d: ...
	def Coefficients(self) -> Tuple[float, float, float, float, float, float]: ...
	def Directrix1(self) -> gp_Ax2d: ...
	def Directrix2(self) -> gp_Ax2d: ...
	def Eccentricity(self) -> float: ...
	def Focal(self) -> float: ...
	def Focus1(self) -> gp_Pnt2d: ...
	def Focus2(self) -> gp_Pnt2d: ...
	def IsDirect(self) -> bool: ...
	def Location(self) -> gp_Pnt2d: ...
	def MajorRadius(self) -> float: ...
	def MinorRadius(self) -> float: ...
	@overload
	def Mirror(self, P: gp_Pnt2d) -> None: ...
	@overload
	def Mirror(self, A: gp_Ax2d) -> None: ...
	@overload
	def Mirrored(self, P: gp_Pnt2d) -> gp_Elips2d: ...
	@overload
	def Mirrored(self, A: gp_Ax2d) -> gp_Elips2d: ...
	def Parameter(self) -> float: ...
	def Reverse(self) -> None: ...
	def Reversed(self) -> gp_Elips2d: ...
	def Rotate(self, P: gp_Pnt2d, Ang: float) -> None: ...
	def Rotated(self, P: gp_Pnt2d, Ang: float) -> gp_Elips2d: ...
	def Scale(self, P: gp_Pnt2d, S: float) -> None: ...
	def Scaled(self, P: gp_Pnt2d, S: float) -> gp_Elips2d: ...
	def SetAxis(self, A: gp_Ax22d) -> None: ...
	def SetLocation(self, P: gp_Pnt2d) -> None: ...
	def SetMajorRadius(self, MajorRadius: float) -> None: ...
	def SetMinorRadius(self, MinorRadius: float) -> None: ...
	def SetXAxis(self, A: gp_Ax2d) -> None: ...
	def SetYAxis(self, A: gp_Ax2d) -> None: ...
	def Transform(self, T: gp_Trsf2d) -> None: ...
	def Transformed(self, T: gp_Trsf2d) -> gp_Elips2d: ...
	@overload
	def Translate(self, V: gp_Vec2d) -> None: ...
	@overload
	def Translate(self, P1: gp_Pnt2d, P2: gp_Pnt2d) -> None: ...
	@overload
	def Translated(self, V: gp_Vec2d) -> gp_Elips2d: ...
	@overload
	def Translated(self, P1: gp_Pnt2d, P2: gp_Pnt2d) -> gp_Elips2d: ...
	def XAxis(self) -> gp_Ax2d: ...
	def YAxis(self) -> gp_Ax2d: ...

class gp_GTrsf:
	@overload
	def __init__(self) -> None: ...
	@overload
	def __init__(self, T: gp_Trsf) -> None: ...
	@overload
	def __init__(self, M: gp_Mat, V: gp_XYZ) -> None: ...
	def Form(self) -> gp_TrsfForm: ...
	def Invert(self) -> None: ...
	def Inverted(self) -> gp_GTrsf: ...
	def IsNegative(self) -> bool: ...
	def IsSingular(self) -> bool: ...
	def Multiplied(self, T: gp_GTrsf) -> gp_GTrsf: ...
	def Multiply(self, T: gp_GTrsf) -> None: ...
	def Power(self, N: int) -> None: ...
	def Powered(self, N: int) -> gp_GTrsf: ...
	def PreMultiply(self, T: gp_GTrsf) -> None: ...
	@overload
	def SetAffinity(self, A1: gp_Ax1, Ratio: float) -> None: ...
	@overload
	def SetAffinity(self, A2: gp_Ax2, Ratio: float) -> None: ...
	def SetForm(self) -> None: ...
	def SetTranslationPart(self, Coord: gp_XYZ) -> None: ...
	def SetTrsf(self, T: gp_Trsf) -> None: ...
	def SetValue(self, Row: int, Col: int, Value: float) -> None: ...
	def SetVectorialPart(self, Matrix: gp_Mat) -> None: ...
	@overload
	def Transforms(self, Coord: gp_XYZ) -> None: ...
	@overload
	def Transforms(self) -> Tuple[float, float, float]: ...
	def TranslationPart(self) -> gp_XYZ: ...
	def Trsf(self) -> gp_Trsf: ...
	def Value(self, Row: int, Col: int) -> float: ...
	def VectorialPart(self) -> gp_Mat: ...

class gp_GTrsf2d:
	@overload
	def __init__(self) -> None: ...
	@overload
	def __init__(self, T: gp_Trsf2d) -> None: ...
	@overload
	def __init__(self, M: gp_Mat2d, V: gp_XY) -> None: ...
	def Form(self) -> gp_TrsfForm: ...
	def Invert(self) -> None: ...
	def Inverted(self) -> gp_GTrsf2d: ...
	def IsNegative(self) -> bool: ...
	def IsSingular(self) -> bool: ...
	def Multiplied(self, T: gp_GTrsf2d) -> gp_GTrsf2d: ...
	def Multiply(self, T: gp_GTrsf2d) -> None: ...
	def Power(self, N: int) -> None: ...
	def Powered(self, N: int) -> gp_GTrsf2d: ...
	def PreMultiply(self, T: gp_GTrsf2d) -> None: ...
	def SetAffinity(self, A: gp_Ax2d, Ratio: float) -> None: ...
	def SetTranslationPart(self, Coord: gp_XY) -> None: ...
	def SetTrsf2d(self, T: gp_Trsf2d) -> None: ...
	def SetValue(self, Row: int, Col: int, Value: float) -> None: ...
	def SetVectorialPart(self, Matrix: gp_Mat2d) -> None: ...
	def Transformed(self, Coord: gp_XY) -> gp_XY: ...
	@overload
	def Transforms(self, Coord: gp_XY) -> None: ...
	@overload
	def Transforms(self) -> Tuple[float, float]: ...
	def TranslationPart(self) -> gp_XY: ...
	def Trsf2d(self) -> gp_Trsf2d: ...
	def Value(self, Row: int, Col: int) -> float: ...
	def VectorialPart(self) -> gp_Mat2d: ...

class gp_Hypr:
	@overload
	def __init__(self) -> None: ...
	@overload
	def __init__(self, A2: gp_Ax2, MajorRadius: float, MinorRadius: float) -> None: ...
	def Asymptote1(self) -> gp_Ax1: ...
	def Asymptote2(self) -> gp_Ax1: ...
	def Axis(self) -> gp_Ax1: ...
	def ConjugateBranch1(self) -> gp_Hypr: ...
	def ConjugateBranch2(self) -> gp_Hypr: ...
	def Directrix1(self) -> gp_Ax1: ...
	def Directrix2(self) -> gp_Ax1: ...
	def Eccentricity(self) -> float: ...
	def Focal(self) -> float: ...
	def Focus1(self) -> gp_Pnt: ...
	def Focus2(self) -> gp_Pnt: ...
	def Location(self) -> gp_Pnt: ...
	def MajorRadius(self) -> float: ...
	def MinorRadius(self) -> float: ...
	@overload
	def Mirror(self, P: gp_Pnt) -> None: ...
	@overload
	def Mirror(self, A1: gp_Ax1) -> None: ...
	@overload
	def Mirror(self, A2: gp_Ax2) -> None: ...
	@overload
	def Mirrored(self, P: gp_Pnt) -> gp_Hypr: ...
	@overload
	def Mirrored(self, A1: gp_Ax1) -> gp_Hypr: ...
	@overload
	def Mirrored(self, A2: gp_Ax2) -> gp_Hypr: ...
	def OtherBranch(self) -> gp_Hypr: ...
	def Parameter(self) -> float: ...
	def Position(self) -> gp_Ax2: ...
	def Rotate(self, A1: gp_Ax1, Ang: float) -> None: ...
	def Rotated(self, A1: gp_Ax1, Ang: float) -> gp_Hypr: ...
	def Scale(self, P: gp_Pnt, S: float) -> None: ...
	def Scaled(self, P: gp_Pnt, S: float) -> gp_Hypr: ...
	def SetAxis(self, A1: gp_Ax1) -> None: ...
	def SetLocation(self, P: gp_Pnt) -> None: ...
	def SetMajorRadius(self, MajorRadius: float) -> None: ...
	def SetMinorRadius(self, MinorRadius: float) -> None: ...
	def SetPosition(self, A2: gp_Ax2) -> None: ...
	def Transform(self, T: gp_Trsf) -> None: ...
	def Transformed(self, T: gp_Trsf) -> gp_Hypr: ...
	@overload
	def Translate(self, V: gp_Vec) -> None: ...
	@overload
	def Translate(self, P1: gp_Pnt, P2: gp_Pnt) -> None: ...
	@overload
	def Translated(self, V: gp_Vec) -> gp_Hypr: ...
	@overload
	def Translated(self, P1: gp_Pnt, P2: gp_Pnt) -> gp_Hypr: ...
	def XAxis(self) -> gp_Ax1: ...
	def YAxis(self) -> gp_Ax1: ...

class gp_Hypr2d:
	@overload
	def __init__(self) -> None: ...
	@overload
	def __init__(self, MajorAxis: gp_Ax2d, MajorRadius: float, MinorRadius: float, Sense: Optional[bool] = True) -> None: ...
	@overload
	def __init__(self, A: gp_Ax22d, MajorRadius: float, MinorRadius: float) -> None: ...
	def Asymptote1(self) -> gp_Ax2d: ...
	def Asymptote2(self) -> gp_Ax2d: ...
	def Axis(self) -> gp_Ax22d: ...
	def Coefficients(self) -> Tuple[float, float, float, float, float, float]: ...
	def ConjugateBranch1(self) -> gp_Hypr2d: ...
	def ConjugateBranch2(self) -> gp_Hypr2d: ...
	def Directrix1(self) -> gp_Ax2d: ...
	def Directrix2(self) -> gp_Ax2d: ...
	def Eccentricity(self) -> float: ...
	def Focal(self) -> float: ...
	def Focus1(self) -> gp_Pnt2d: ...
	def Focus2(self) -> gp_Pnt2d: ...
	def IsDirect(self) -> bool: ...
	def Location(self) -> gp_Pnt2d: ...
	def MajorRadius(self) -> float: ...
	def MinorRadius(self) -> float: ...
	@overload
	def Mirror(self, P: gp_Pnt2d) -> None: ...
	@overload
	def Mirror(self, A: gp_Ax2d) -> None: ...
	@overload
	def Mirrored(self, P: gp_Pnt2d) -> gp_Hypr2d: ...
	@overload
	def Mirrored(self, A: gp_Ax2d) -> gp_Hypr2d: ...
	def OtherBranch(self) -> gp_Hypr2d: ...
	def Parameter(self) -> float: ...
	def Reverse(self) -> None: ...
	def Reversed(self) -> gp_Hypr2d: ...
	def Rotate(self, P: gp_Pnt2d, Ang: float) -> None: ...
	def Rotated(self, P: gp_Pnt2d, Ang: float) -> gp_Hypr2d: ...
	def Scale(self, P: gp_Pnt2d, S: float) -> None: ...
	def Scaled(self, P: gp_Pnt2d, S: float) -> gp_Hypr2d: ...
	def SetAxis(self, A: gp_Ax22d) -> None: ...
	def SetLocation(self, P: gp_Pnt2d) -> None: ...
	def SetMajorRadius(self, MajorRadius: float) -> None: ...
	def SetMinorRadius(self, MinorRadius: float) -> None: ...
	def SetXAxis(self, A: gp_Ax2d) -> None: ...
	def SetYAxis(self, A: gp_Ax2d) -> None: ...
	def Transform(self, T: gp_Trsf2d) -> None: ...
	def Transformed(self, T: gp_Trsf2d) -> gp_Hypr2d: ...
	@overload
	def Translate(self, V: gp_Vec2d) -> None: ...
	@overload
	def Translate(self, P1: gp_Pnt2d, P2: gp_Pnt2d) -> None: ...
	@overload
	def Translated(self, V: gp_Vec2d) -> gp_Hypr2d: ...
	@overload
	def Translated(self, P1: gp_Pnt2d, P2: gp_Pnt2d) -> gp_Hypr2d: ...
	def XAxis(self) -> gp_Ax2d: ...
	def YAxis(self) -> gp_Ax2d: ...

class gp_Lin:
	@overload
	def __init__(self) -> None: ...
	@overload
	def __init__(self, A1: gp_Ax1) -> None: ...
	@overload
	def __init__(self, P: gp_Pnt, V: gp_Dir) -> None: ...
	def Angle(self, Other: gp_Lin) -> float: ...
	def Contains(self, P: gp_Pnt, LinearTolerance: float) -> bool: ...
	def Direction(self) -> gp_Dir: ...
	@overload
	def Distance(self, P: gp_Pnt) -> float: ...
	@overload
	def Distance(self, Other: gp_Lin) -> float: ...
	def Location(self) -> gp_Pnt: ...
	@overload
	def Mirror(self, P: gp_Pnt) -> None: ...
	@overload
	def Mirror(self, A1: gp_Ax1) -> None: ...
	@overload
	def Mirror(self, A2: gp_Ax2) -> None: ...
	@overload
	def Mirrored(self, P: gp_Pnt) -> gp_Lin: ...
	@overload
	def Mirrored(self, A1: gp_Ax1) -> gp_Lin: ...
	@overload
	def Mirrored(self, A2: gp_Ax2) -> gp_Lin: ...
	def Normal(self, P: gp_Pnt) -> gp_Lin: ...
	def Position(self) -> gp_Ax1: ...
	def Reverse(self) -> None: ...
	def Reversed(self) -> gp_Lin: ...
	def Rotate(self, A1: gp_Ax1, Ang: float) -> None: ...
	def Rotated(self, A1: gp_Ax1, Ang: float) -> gp_Lin: ...
	def Scale(self, P: gp_Pnt, S: float) -> None: ...
	def Scaled(self, P: gp_Pnt, S: float) -> gp_Lin: ...
	def SetDirection(self, V: gp_Dir) -> None: ...
	def SetLocation(self, P: gp_Pnt) -> None: ...
	def SetPosition(self, A1: gp_Ax1) -> None: ...
	@overload
	def SquareDistance(self, P: gp_Pnt) -> float: ...
	@overload
	def SquareDistance(self, Other: gp_Lin) -> float: ...
	def Transform(self, T: gp_Trsf) -> None: ...
	def Transformed(self, T: gp_Trsf) -> gp_Lin: ...
	@overload
	def Translate(self, V: gp_Vec) -> None: ...
	@overload
	def Translate(self, P1: gp_Pnt, P2: gp_Pnt) -> None: ...
	@overload
	def Translated(self, V: gp_Vec) -> gp_Lin: ...
	@overload
	def Translated(self, P1: gp_Pnt, P2: gp_Pnt) -> gp_Lin: ...

class gp_Lin2d:
	@overload
	def __init__(self) -> None: ...
	@overload
	def __init__(self, A: gp_Ax2d) -> None: ...
	@overload
	def __init__(self, P: gp_Pnt2d, V: gp_Dir2d) -> None: ...
	@overload
	def __init__(self, A: float, B: float, C: float) -> None: ...
	def Angle(self, Other: gp_Lin2d) -> float: ...
	def Coefficients(self) -> Tuple[float, float, float]: ...
	def Contains(self, P: gp_Pnt2d, LinearTolerance: float) -> bool: ...
	def Direction(self) -> gp_Dir2d: ...
	@overload
	def Distance(self, P: gp_Pnt2d) -> float: ...
	@overload
	def Distance(self, Other: gp_Lin2d) -> float: ...
	def Location(self) -> gp_Pnt2d: ...
	@overload
	def Mirror(self, P: gp_Pnt2d) -> None: ...
	@overload
	def Mirror(self, A: gp_Ax2d) -> None: ...
	@overload
	def Mirrored(self, P: gp_Pnt2d) -> gp_Lin2d: ...
	@overload
	def Mirrored(self, A: gp_Ax2d) -> gp_Lin2d: ...
	def Normal(self, P: gp_Pnt2d) -> gp_Lin2d: ...
	def Position(self) -> gp_Ax2d: ...
	def Reverse(self) -> None: ...
	def Reversed(self) -> gp_Lin2d: ...
	def Rotate(self, P: gp_Pnt2d, Ang: float) -> None: ...
	def Rotated(self, P: gp_Pnt2d, Ang: float) -> gp_Lin2d: ...
	def Scale(self, P: gp_Pnt2d, S: float) -> None: ...
	def Scaled(self, P: gp_Pnt2d, S: float) -> gp_Lin2d: ...
	def SetDirection(self, V: gp_Dir2d) -> None: ...
	def SetLocation(self, P: gp_Pnt2d) -> None: ...
	def SetPosition(self, A: gp_Ax2d) -> None: ...
	@overload
	def SquareDistance(self, P: gp_Pnt2d) -> float: ...
	@overload
	def SquareDistance(self, Other: gp_Lin2d) -> float: ...
	def Transform(self, T: gp_Trsf2d) -> None: ...
	def Transformed(self, T: gp_Trsf2d) -> gp_Lin2d: ...
	@overload
	def Translate(self, V: gp_Vec2d) -> None: ...
	@overload
	def Translate(self, P1: gp_Pnt2d, P2: gp_Pnt2d) -> None: ...
	@overload
	def Translated(self, V: gp_Vec2d) -> gp_Lin2d: ...
	@overload
	def Translated(self, P1: gp_Pnt2d, P2: gp_Pnt2d) -> gp_Lin2d: ...

class gp_Mat:
	@overload
	def __init__(self) -> None: ...
	@overload
	def __init__(self, a11: float, a12: float, a13: float, a21: float, a22: float, a23: float, a31: float, a32: float, a33: float) -> None: ...
	@overload
	def __init__(self, Col1: gp_XYZ, Col2: gp_XYZ, Col3: gp_XYZ) -> None: ...
	def Add(self, Other: gp_Mat) -> None: ...
	def Added(self, Other: gp_Mat) -> gp_Mat: ...
	def GetChangeValue(self, Row: int, Col: int) -> float: ...
	def SetChangeValue(self, Row: int, Col: int, value: float) -> None: ...
	def Column(self, Col: int) -> gp_XYZ: ...
	def Determinant(self) -> float: ...
	def Diagonal(self) -> gp_XYZ: ...
	def Divide(self, Scalar: float) -> None: ...
	def Divided(self, Scalar: float) -> gp_Mat: ...
	def Invert(self) -> None: ...
	def Inverted(self) -> gp_Mat: ...
	def IsSingular(self) -> bool: ...
	@overload
	def Multiplied(self, Other: gp_Mat) -> gp_Mat: ...
	@overload
	def Multiplied(self, Scalar: float) -> gp_Mat: ...
	@overload
	def Multiply(self, Other: gp_Mat) -> None: ...
	@overload
	def Multiply(self, Scalar: float) -> None: ...
	def Power(self, N: int) -> None: ...
	def Powered(self, N: int) -> gp_Mat: ...
	def PreMultiply(self, Other: gp_Mat) -> None: ...
	def Row(self, Row: int) -> gp_XYZ: ...
	def SetCol(self, Col: int, Value: gp_XYZ) -> None: ...
	def SetCols(self, Col1: gp_XYZ, Col2: gp_XYZ, Col3: gp_XYZ) -> None: ...
	def SetCross(self, Ref: gp_XYZ) -> None: ...
	def SetDiagonal(self, X1: float, X2: float, X3: float) -> None: ...
	def SetDot(self, Ref: gp_XYZ) -> None: ...
	def SetIdentity(self) -> None: ...
	def SetRotation(self, Axis: gp_XYZ, Ang: float) -> None: ...
	def SetRow(self, Row: int, Value: gp_XYZ) -> None: ...
	def SetRows(self, Row1: gp_XYZ, Row2: gp_XYZ, Row3: gp_XYZ) -> None: ...
	def SetScale(self, S: float) -> None: ...
	def SetValue(self, Row: int, Col: int, Value: float) -> None: ...
	def Subtract(self, Other: gp_Mat) -> None: ...
	def Subtracted(self, Other: gp_Mat) -> gp_Mat: ...
	def Transpose(self) -> None: ...
	def Transposed(self) -> gp_Mat: ...
	def Value(self, Row: int, Col: int) -> float: ...

class gp_Mat2d:
	@overload
	def __init__(self) -> None: ...
	@overload
	def __init__(self, Col1: gp_XY, Col2: gp_XY) -> None: ...
	def Add(self, Other: gp_Mat2d) -> None: ...
	def Added(self, Other: gp_Mat2d) -> gp_Mat2d: ...
	def GetChangeValue(self, Row: int, Col: int) -> float: ...
	def SetChangeValue(self, Row: int, Col: int, value: float) -> None: ...
	def Column(self, Col: int) -> gp_XY: ...
	def Determinant(self) -> float: ...
	def Diagonal(self) -> gp_XY: ...
	def Divide(self, Scalar: float) -> None: ...
	def Divided(self, Scalar: float) -> gp_Mat2d: ...
	def Invert(self) -> None: ...
	def Inverted(self) -> gp_Mat2d: ...
	def IsSingular(self) -> bool: ...
	@overload
	def Multiplied(self, Other: gp_Mat2d) -> gp_Mat2d: ...
	@overload
	def Multiplied(self, Scalar: float) -> gp_Mat2d: ...
	@overload
	def Multiply(self, Other: gp_Mat2d) -> None: ...
	@overload
	def Multiply(self, Scalar: float) -> None: ...
	def Power(self, N: int) -> None: ...
	def Powered(self, N: int) -> gp_Mat2d: ...
	def PreMultiply(self, Other: gp_Mat2d) -> None: ...
	def Row(self, Row: int) -> gp_XY: ...
	def SetCol(self, Col: int, Value: gp_XY) -> None: ...
	def SetCols(self, Col1: gp_XY, Col2: gp_XY) -> None: ...
	def SetDiagonal(self, X1: float, X2: float) -> None: ...
	def SetIdentity(self) -> None: ...
	def SetRotation(self, Ang: float) -> None: ...
	def SetRow(self, Row: int, Value: gp_XY) -> None: ...
	def SetRows(self, Row1: gp_XY, Row2: gp_XY) -> None: ...
	def SetScale(self, S: float) -> None: ...
	def SetValue(self, Row: int, Col: int, Value: float) -> None: ...
	def Subtract(self, Other: gp_Mat2d) -> None: ...
	def Subtracted(self, Other: gp_Mat2d) -> gp_Mat2d: ...
	def Transpose(self) -> None: ...
	def Transposed(self) -> gp_Mat2d: ...
	def Value(self, Row: int, Col: int) -> float: ...

class gp_Parab:
	@overload
	def __init__(self) -> None: ...
	@overload
	def __init__(self, A2: gp_Ax2, Focal: float) -> None: ...
	@overload
	def __init__(self, D: gp_Ax1, F: gp_Pnt) -> None: ...
	def Axis(self) -> gp_Ax1: ...
	def Directrix(self) -> gp_Ax1: ...
	def Focal(self) -> float: ...
	def Focus(self) -> gp_Pnt: ...
	def Location(self) -> gp_Pnt: ...
	@overload
	def Mirror(self, P: gp_Pnt) -> None: ...
	@overload
	def Mirror(self, A1: gp_Ax1) -> None: ...
	@overload
	def Mirror(self, A2: gp_Ax2) -> None: ...
	@overload
	def Mirrored(self, P: gp_Pnt) -> gp_Parab: ...
	@overload
	def Mirrored(self, A1: gp_Ax1) -> gp_Parab: ...
	@overload
	def Mirrored(self, A2: gp_Ax2) -> gp_Parab: ...
	def Parameter(self) -> float: ...
	def Position(self) -> gp_Ax2: ...
	def Rotate(self, A1: gp_Ax1, Ang: float) -> None: ...
	def Rotated(self, A1: gp_Ax1, Ang: float) -> gp_Parab: ...
	def Scale(self, P: gp_Pnt, S: float) -> None: ...
	def Scaled(self, P: gp_Pnt, S: float) -> gp_Parab: ...
	def SetAxis(self, A1: gp_Ax1) -> None: ...
	def SetFocal(self, Focal: float) -> None: ...
	def SetLocation(self, P: gp_Pnt) -> None: ...
	def SetPosition(self, A2: gp_Ax2) -> None: ...
	def Transform(self, T: gp_Trsf) -> None: ...
	def Transformed(self, T: gp_Trsf) -> gp_Parab: ...
	@overload
	def Translate(self, V: gp_Vec) -> None: ...
	@overload
	def Translate(self, P1: gp_Pnt, P2: gp_Pnt) -> None: ...
	@overload
	def Translated(self, V: gp_Vec) -> gp_Parab: ...
	@overload
	def Translated(self, P1: gp_Pnt, P2: gp_Pnt) -> gp_Parab: ...
	def XAxis(self) -> gp_Ax1: ...
	def YAxis(self) -> gp_Ax1: ...

class gp_Parab2d:
	@overload
	def __init__(self) -> None: ...
	@overload
	def __init__(self, theMirrorAxis: gp_Ax2d, theFocalLength: float, theSense: Optional[bool] = True) -> None: ...
	@overload
	def __init__(self, theAxes: gp_Ax22d, theFocalLength: float) -> None: ...
	@overload
	def __init__(self, theDirectrix: gp_Ax2d, theFocus: gp_Pnt2d, theSense: Optional[bool] = True) -> None: ...
	def Axis(self) -> gp_Ax22d: ...
	def Coefficients(self) -> Tuple[float, float, float, float, float, float]: ...
	def Directrix(self) -> gp_Ax2d: ...
	def Focal(self) -> float: ...
	def Focus(self) -> gp_Pnt2d: ...
	def IsDirect(self) -> bool: ...
	def Location(self) -> gp_Pnt2d: ...
	@overload
	def Mirror(self, P: gp_Pnt2d) -> None: ...
	@overload
	def Mirror(self, A: gp_Ax2d) -> None: ...
	def MirrorAxis(self) -> gp_Ax2d: ...
	@overload
	def Mirrored(self, P: gp_Pnt2d) -> gp_Parab2d: ...
	@overload
	def Mirrored(self, A: gp_Ax2d) -> gp_Parab2d: ...
	def Parameter(self) -> float: ...
	def Reverse(self) -> None: ...
	def Reversed(self) -> gp_Parab2d: ...
	def Rotate(self, P: gp_Pnt2d, Ang: float) -> None: ...
	def Rotated(self, P: gp_Pnt2d, Ang: float) -> gp_Parab2d: ...
	def Scale(self, P: gp_Pnt2d, S: float) -> None: ...
	def Scaled(self, P: gp_Pnt2d, S: float) -> gp_Parab2d: ...
	def SetAxis(self, A: gp_Ax22d) -> None: ...
	def SetFocal(self, Focal: float) -> None: ...
	def SetLocation(self, P: gp_Pnt2d) -> None: ...
	def SetMirrorAxis(self, A: gp_Ax2d) -> None: ...
	def Transform(self, T: gp_Trsf2d) -> None: ...
	def Transformed(self, T: gp_Trsf2d) -> gp_Parab2d: ...
	@overload
	def Translate(self, V: gp_Vec2d) -> None: ...
	@overload
	def Translate(self, P1: gp_Pnt2d, P2: gp_Pnt2d) -> None: ...
	@overload
	def Translated(self, V: gp_Vec2d) -> gp_Parab2d: ...
	@overload
	def Translated(self, P1: gp_Pnt2d, P2: gp_Pnt2d) -> gp_Parab2d: ...

class gp_Pln:
	@overload
	def __init__(self) -> None: ...
	@overload
	def __init__(self, A3: gp_Ax3) -> None: ...
	@overload
	def __init__(self, P: gp_Pnt, V: gp_Dir) -> None: ...
	@overload
	def __init__(self, A: float, B: float, C: float, D: float) -> None: ...
	def Axis(self) -> gp_Ax1: ...
	def Coefficients(self) -> Tuple[float, float, float, float]: ...
	@overload
	def Contains(self, P: gp_Pnt, LinearTolerance: float) -> bool: ...
	@overload
	def Contains(self, L: gp_Lin, LinearTolerance: float, AngularTolerance: float) -> bool: ...
	def Direct(self) -> bool: ...
	@overload
	def Distance(self, P: gp_Pnt) -> float: ...
	@overload
	def Distance(self, L: gp_Lin) -> float: ...
	@overload
	def Distance(self, Other: gp_Pln) -> float: ...
	def Location(self) -> gp_Pnt: ...
	@overload
	def Mirror(self, P: gp_Pnt) -> None: ...
	@overload
	def Mirror(self, A1: gp_Ax1) -> None: ...
	@overload
	def Mirror(self, A2: gp_Ax2) -> None: ...
	@overload
	def Mirrored(self, P: gp_Pnt) -> gp_Pln: ...
	@overload
	def Mirrored(self, A1: gp_Ax1) -> gp_Pln: ...
	@overload
	def Mirrored(self, A2: gp_Ax2) -> gp_Pln: ...
	def Position(self) -> gp_Ax3: ...
	def Rotate(self, A1: gp_Ax1, Ang: float) -> None: ...
	def Rotated(self, A1: gp_Ax1, Ang: float) -> gp_Pln: ...
	def Scale(self, P: gp_Pnt, S: float) -> None: ...
	def Scaled(self, P: gp_Pnt, S: float) -> gp_Pln: ...
	def SetAxis(self, A1: gp_Ax1) -> None: ...
	def SetLocation(self, Loc: gp_Pnt) -> None: ...
	def SetPosition(self, A3: gp_Ax3) -> None: ...
	@overload
	def SquareDistance(self, P: gp_Pnt) -> float: ...
	@overload
	def SquareDistance(self, L: gp_Lin) -> float: ...
	@overload
	def SquareDistance(self, Other: gp_Pln) -> float: ...
	def Transform(self, T: gp_Trsf) -> None: ...
	def Transformed(self, T: gp_Trsf) -> gp_Pln: ...
	@overload
	def Translate(self, V: gp_Vec) -> None: ...
	@overload
	def Translate(self, P1: gp_Pnt, P2: gp_Pnt) -> None: ...
	@overload
	def Translated(self, V: gp_Vec) -> gp_Pln: ...
	@overload
	def Translated(self, P1: gp_Pnt, P2: gp_Pnt) -> gp_Pln: ...
	def UReverse(self) -> None: ...
	def VReverse(self) -> None: ...
	def XAxis(self) -> gp_Ax1: ...
	def YAxis(self) -> gp_Ax1: ...

class gp_Pnt:
	@overload
	def __init__(self) -> None: ...
	@overload
	def __init__(self, Coord: gp_XYZ) -> None: ...
	@overload
	def __init__(self, Xp: float, Yp: float, Zp: float) -> None: ...
	def BaryCenter(self, Alpha: float, P: gp_Pnt, Beta: float) -> None: ...
	def ChangeCoord(self) -> gp_XYZ: ...
	@overload
	def Coord(self, Index: int) -> float: ...
	@overload
	def Coord(self) -> Tuple[float, float, float]: ...
	@overload
	def Coord(self) -> gp_XYZ: ...
	def Distance(self, Other: gp_Pnt) -> float: ...
	def IsEqual(self, Other: gp_Pnt, LinearTolerance: float) -> bool: ...
	@overload
	def Mirror(self, P: gp_Pnt) -> None: ...
	@overload
	def Mirror(self, A1: gp_Ax1) -> None: ...
	@overload
	def Mirror(self, A2: gp_Ax2) -> None: ...
	@overload
	def Mirrored(self, P: gp_Pnt) -> gp_Pnt: ...
	@overload
	def Mirrored(self, A1: gp_Ax1) -> gp_Pnt: ...
	@overload
	def Mirrored(self, A2: gp_Ax2) -> gp_Pnt: ...
	def Rotate(self, A1: gp_Ax1, Ang: float) -> None: ...
	def Rotated(self, A1: gp_Ax1, Ang: float) -> gp_Pnt: ...
	def Scale(self, P: gp_Pnt, S: float) -> None: ...
	def Scaled(self, P: gp_Pnt, S: float) -> gp_Pnt: ...
	@overload
	def SetCoord(self, Index: int, Xi: float) -> None: ...
	@overload
	def SetCoord(self, Xp: float, Yp: float, Zp: float) -> None: ...
	def SetX(self, X: float) -> None: ...
	def SetXYZ(self, Coord: gp_XYZ) -> None: ...
	def SetY(self, Y: float) -> None: ...
	def SetZ(self, Z: float) -> None: ...
	def SquareDistance(self, Other: gp_Pnt) -> float: ...
	def Transform(self, T: gp_Trsf) -> None: ...
	def Transformed(self, T: gp_Trsf) -> gp_Pnt: ...
	@overload
	def Translate(self, V: gp_Vec) -> None: ...
	@overload
	def Translate(self, P1: gp_Pnt, P2: gp_Pnt) -> None: ...
	@overload
	def Translated(self, V: gp_Vec) -> gp_Pnt: ...
	@overload
	def Translated(self, P1: gp_Pnt, P2: gp_Pnt) -> gp_Pnt: ...
	def X(self) -> float: ...
	def XYZ(self) -> gp_XYZ: ...
	def Y(self) -> float: ...
	def Z(self) -> float: ...

class gp_Pnt2d:
	@overload
	def __init__(self) -> None: ...
	@overload
	def __init__(self, Coord: gp_XY) -> None: ...
	@overload
	def __init__(self, Xp: float, Yp: float) -> None: ...
	def ChangeCoord(self) -> gp_XY: ...
	@overload
	def Coord(self, Index: int) -> float: ...
	@overload
	def Coord(self) -> Tuple[float, float]: ...
	@overload
	def Coord(self) -> gp_XY: ...
	def Distance(self, Other: gp_Pnt2d) -> float: ...
	def IsEqual(self, Other: gp_Pnt2d, LinearTolerance: float) -> bool: ...
	@overload
	def Mirror(self, P: gp_Pnt2d) -> None: ...
	@overload
	def Mirror(self, A: gp_Ax2d) -> None: ...
	@overload
	def Mirrored(self, P: gp_Pnt2d) -> gp_Pnt2d: ...
	@overload
	def Mirrored(self, A: gp_Ax2d) -> gp_Pnt2d: ...
	def Rotate(self, P: gp_Pnt2d, Ang: float) -> None: ...
	def Rotated(self, P: gp_Pnt2d, Ang: float) -> gp_Pnt2d: ...
	def Scale(self, P: gp_Pnt2d, S: float) -> None: ...
	def Scaled(self, P: gp_Pnt2d, S: float) -> gp_Pnt2d: ...
	@overload
	def SetCoord(self, Index: int, Xi: float) -> None: ...
	@overload
	def SetCoord(self, Xp: float, Yp: float) -> None: ...
	def SetX(self, X: float) -> None: ...
	def SetXY(self, Coord: gp_XY) -> None: ...
	def SetY(self, Y: float) -> None: ...
	def SquareDistance(self, Other: gp_Pnt2d) -> float: ...
	def Transform(self, T: gp_Trsf2d) -> None: ...
	def Transformed(self, T: gp_Trsf2d) -> gp_Pnt2d: ...
	@overload
	def Translate(self, V: gp_Vec2d) -> None: ...
	@overload
	def Translate(self, P1: gp_Pnt2d, P2: gp_Pnt2d) -> None: ...
	@overload
	def Translated(self, V: gp_Vec2d) -> gp_Pnt2d: ...
	@overload
	def Translated(self, P1: gp_Pnt2d, P2: gp_Pnt2d) -> gp_Pnt2d: ...
	def X(self) -> float: ...
	def XY(self) -> gp_XY: ...
	def Y(self) -> float: ...

class gp_Quaternion:
	@overload
	def __init__(self) -> None: ...
	@overload
	def __init__(self, x: float, y: float, z: float, w: float) -> None: ...
	@overload
	def __init__(self, theToCopy: gp_Quaternion) -> None: ...
	@overload
	def __init__(self, theVecFrom: gp_Vec, theVecTo: gp_Vec) -> None: ...
	@overload
	def __init__(self, theVecFrom: gp_Vec, theVecTo: gp_Vec, theHelpCrossVec: gp_Vec) -> None: ...
	@overload
	def __init__(self, theAxis: gp_Vec, theAngle: float) -> None: ...
	@overload
	def __init__(self, theMat: gp_Mat) -> None: ...
	def Add(self, theOther: gp_Quaternion) -> None: ...
	def Added(self, theOther: gp_Quaternion) -> gp_Quaternion: ...
	def Dot(self, theOther: gp_Quaternion) -> float: ...
	def GetEulerAngles(self, theOrder: gp_EulerSequence) -> Tuple[float, float, float]: ...
	def GetMatrix(self) -> gp_Mat: ...
	def GetRotationAngle(self) -> float: ...
	def GetVectorAndAngle(self, theAxis: gp_Vec) -> float: ...
	def Invert(self) -> None: ...
	def Inverted(self) -> gp_Quaternion: ...
	def IsEqual(self, theOther: gp_Quaternion) -> bool: ...
	def Multiplied(self, theOther: gp_Quaternion) -> gp_Quaternion: ...
	@overload
	def Multiply(self, theOther: gp_Quaternion) -> None: ...
	@overload
	def Multiply(self, theVec: gp_Vec) -> gp_Vec: ...
	def Negated(self) -> gp_Quaternion: ...
	def Norm(self) -> float: ...
	def Normalize(self) -> None: ...
	def Normalized(self) -> gp_Quaternion: ...
	def Reverse(self) -> None: ...
	def Reversed(self) -> gp_Quaternion: ...
	def Scale(self, theScale: float) -> None: ...
	def Scaled(self, theScale: float) -> gp_Quaternion: ...
	@overload
	def Set(self, x: float, y: float, z: float, w: float) -> None: ...
	@overload
	def Set(self, theQuaternion: gp_Quaternion) -> None: ...
	def SetEulerAngles(self, theOrder: gp_EulerSequence, theAlpha: float, theBeta: float, theGamma: float) -> None: ...
	def SetIdent(self) -> None: ...
	def SetMatrix(self, theMat: gp_Mat) -> None: ...
	@overload
	def SetRotation(self, theVecFrom: gp_Vec, theVecTo: gp_Vec) -> None: ...
	@overload
	def SetRotation(self, theVecFrom: gp_Vec, theVecTo: gp_Vec, theHelpCrossVec: gp_Vec) -> None: ...
	def SetVectorAndAngle(self, theAxis: gp_Vec, theAngle: float) -> None: ...
	def SquareNorm(self) -> float: ...
	def StabilizeLength(self) -> None: ...
	def Subtract(self, theOther: gp_Quaternion) -> None: ...
	def Subtracted(self, theOther: gp_Quaternion) -> gp_Quaternion: ...
	def W(self) -> float: ...
	def X(self) -> float: ...
	def Y(self) -> float: ...
	def Z(self) -> float: ...

class gp_QuaternionNLerp:
	@overload
	def __init__(self) -> None: ...
	@overload
	def __init__(self, theQStart: gp_Quaternion, theQEnd: gp_Quaternion) -> None: ...
	def Init(self, theQStart: gp_Quaternion, theQEnd: gp_Quaternion) -> None: ...
	def InitFromUnit(self, theQStart: gp_Quaternion, theQEnd: gp_Quaternion) -> None: ...
	@overload
	@staticmethod
	def Interpolate(theQStart: gp_Quaternion, theQEnd: gp_Quaternion, theT: float) -> gp_Quaternion: ...
	@overload
	def Interpolate(self, theT: float, theResultQ: gp_Quaternion) -> None: ...

class gp_QuaternionSLerp:
	@overload
	def __init__(self) -> None: ...
	@overload
	def __init__(self, theQStart: gp_Quaternion, theQEnd: gp_Quaternion) -> None: ...
	def Init(self, theQStart: gp_Quaternion, theQEnd: gp_Quaternion) -> None: ...
	def InitFromUnit(self, theQStart: gp_Quaternion, theQEnd: gp_Quaternion) -> None: ...
	@overload
	@staticmethod
	def Interpolate(theQStart: gp_Quaternion, theQEnd: gp_Quaternion, theT: float) -> gp_Quaternion: ...
	@overload
	def Interpolate(self, theT: float, theResultQ: gp_Quaternion) -> None: ...

class gp_Sphere:
	@overload
	def __init__(self) -> None: ...
	@overload
	def __init__(self, A3: gp_Ax3, Radius: float) -> None: ...
	def Area(self) -> float: ...
	def Coefficients(self) -> Tuple[float, float, float, float, float, float, float, float, float, float]: ...
	def Direct(self) -> bool: ...
	def Location(self) -> gp_Pnt: ...
	@overload
	def Mirror(self, P: gp_Pnt) -> None: ...
	@overload
	def Mirror(self, A1: gp_Ax1) -> None: ...
	@overload
	def Mirror(self, A2: gp_Ax2) -> None: ...
	@overload
	def Mirrored(self, P: gp_Pnt) -> gp_Sphere: ...
	@overload
	def Mirrored(self, A1: gp_Ax1) -> gp_Sphere: ...
	@overload
	def Mirrored(self, A2: gp_Ax2) -> gp_Sphere: ...
	def Position(self) -> gp_Ax3: ...
	def Radius(self) -> float: ...
	def Rotate(self, A1: gp_Ax1, Ang: float) -> None: ...
	def Rotated(self, A1: gp_Ax1, Ang: float) -> gp_Sphere: ...
	def Scale(self, P: gp_Pnt, S: float) -> None: ...
	def Scaled(self, P: gp_Pnt, S: float) -> gp_Sphere: ...
	def SetLocation(self, Loc: gp_Pnt) -> None: ...
	def SetPosition(self, A3: gp_Ax3) -> None: ...
	def SetRadius(self, R: float) -> None: ...
	def Transform(self, T: gp_Trsf) -> None: ...
	def Transformed(self, T: gp_Trsf) -> gp_Sphere: ...
	@overload
	def Translate(self, V: gp_Vec) -> None: ...
	@overload
	def Translate(self, P1: gp_Pnt, P2: gp_Pnt) -> None: ...
	@overload
	def Translated(self, V: gp_Vec) -> gp_Sphere: ...
	@overload
	def Translated(self, P1: gp_Pnt, P2: gp_Pnt) -> gp_Sphere: ...
	def UReverse(self) -> None: ...
	def VReverse(self) -> None: ...
	def Volume(self) -> float: ...
	def XAxis(self) -> gp_Ax1: ...
	def YAxis(self) -> gp_Ax1: ...

class gp_Torus:
	@overload
	def __init__(self) -> None: ...
	@overload
	def __init__(self, A3: gp_Ax3, MajorRadius: float, MinorRadius: float) -> None: ...
	def Area(self) -> float: ...
	def Axis(self) -> gp_Ax1: ...
	def Direct(self) -> bool: ...
	def Location(self) -> gp_Pnt: ...
	def MajorRadius(self) -> float: ...
	def MinorRadius(self) -> float: ...
	@overload
	def Mirror(self, P: gp_Pnt) -> None: ...
	@overload
	def Mirror(self, A1: gp_Ax1) -> None: ...
	@overload
	def Mirror(self, A2: gp_Ax2) -> None: ...
	@overload
	def Mirrored(self, P: gp_Pnt) -> gp_Torus: ...
	@overload
	def Mirrored(self, A1: gp_Ax1) -> gp_Torus: ...
	@overload
	def Mirrored(self, A2: gp_Ax2) -> gp_Torus: ...
	def Position(self) -> gp_Ax3: ...
	def Rotate(self, A1: gp_Ax1, Ang: float) -> None: ...
	def Rotated(self, A1: gp_Ax1, Ang: float) -> gp_Torus: ...
	def Scale(self, P: gp_Pnt, S: float) -> None: ...
	def Scaled(self, P: gp_Pnt, S: float) -> gp_Torus: ...
	def SetAxis(self, A1: gp_Ax1) -> None: ...
	def SetLocation(self, Loc: gp_Pnt) -> None: ...
	def SetMajorRadius(self, MajorRadius: float) -> None: ...
	def SetMinorRadius(self, MinorRadius: float) -> None: ...
	def SetPosition(self, A3: gp_Ax3) -> None: ...
	def Transform(self, T: gp_Trsf) -> None: ...
	def Transformed(self, T: gp_Trsf) -> gp_Torus: ...
	@overload
	def Translate(self, V: gp_Vec) -> None: ...
	@overload
	def Translate(self, P1: gp_Pnt, P2: gp_Pnt) -> None: ...
	@overload
	def Translated(self, V: gp_Vec) -> gp_Torus: ...
	@overload
	def Translated(self, P1: gp_Pnt, P2: gp_Pnt) -> gp_Torus: ...
	def UReverse(self) -> None: ...
	def VReverse(self) -> None: ...
	def Volume(self) -> float: ...
	def XAxis(self) -> gp_Ax1: ...
	def YAxis(self) -> gp_Ax1: ...

class gp_Trsf:
	@overload
	def __init__(self) -> None: ...
	@overload
	def __init__(self, T: gp_Trsf2d) -> None: ...
	def Form(self) -> gp_TrsfForm: ...
	@overload
	def GetRotation(self, theAxis: gp_XYZ) -> Tuple[bool, float]: ...
	@overload
	def GetRotation(self) -> gp_Quaternion: ...
	def HVectorialPart(self) -> gp_Mat: ...
	def Invert(self) -> None: ...
	def Inverted(self) -> gp_Trsf: ...
	def IsNegative(self) -> bool: ...
	def Multiplied(self, T: gp_Trsf) -> gp_Trsf: ...
	def Multiply(self, T: gp_Trsf) -> None: ...
	def Power(self, N: int) -> None: ...
	def Powered(self, N: int) -> gp_Trsf: ...
	def PreMultiply(self, T: gp_Trsf) -> None: ...
	def ScaleFactor(self) -> float: ...
	def SetDisplacement(self, FromSystem1: gp_Ax3, ToSystem2: gp_Ax3) -> None: ...
	def SetForm(self, P: gp_TrsfForm) -> None: ...
	@overload
	def SetMirror(self, P: gp_Pnt) -> None: ...
	@overload
	def SetMirror(self, A1: gp_Ax1) -> None: ...
	@overload
	def SetMirror(self, A2: gp_Ax2) -> None: ...
	@overload
	def SetRotation(self, A1: gp_Ax1, Ang: float) -> None: ...
	@overload
	def SetRotation(self, R: gp_Quaternion) -> None: ...
	def SetScale(self, P: gp_Pnt, S: float) -> None: ...
	def SetScaleFactor(self, S: float) -> None: ...
	@overload
	def SetTransformation(self, FromSystem1: gp_Ax3, ToSystem2: gp_Ax3) -> None: ...
	@overload
	def SetTransformation(self, ToSystem: gp_Ax3) -> None: ...
	@overload
	def SetTransformation(self, R: gp_Quaternion, T: gp_Vec) -> None: ...
	@overload
	def SetTranslation(self, V: gp_Vec) -> None: ...
	@overload
	def SetTranslation(self, P1: gp_Pnt, P2: gp_Pnt) -> None: ...
	def SetTranslationPart(self, V: gp_Vec) -> None: ...
	def SetValues(self, a11: float, a12: float, a13: float, a14: float, a21: float, a22: float, a23: float, a24: float, a31: float, a32: float, a33: float, a34: float) -> None: ...
	@overload
	def Transforms(self) -> Tuple[float, float, float]: ...
	@overload
	def Transforms(self, Coord: gp_XYZ) -> None: ...
	def TranslationPart(self) -> gp_XYZ: ...
	def Value(self, Row: int, Col: int) -> float: ...
	def VectorialPart(self) -> gp_Mat: ...

class gp_Trsf2d:
	@overload
	def __init__(self) -> None: ...
	@overload
	def __init__(self, T: gp_Trsf) -> None: ...
	def Form(self) -> gp_TrsfForm: ...
	def HVectorialPart(self) -> gp_Mat2d: ...
	def Invert(self) -> None: ...
	def Inverted(self) -> gp_Trsf2d: ...
	def IsNegative(self) -> bool: ...
	def Multiplied(self, T: gp_Trsf2d) -> gp_Trsf2d: ...
	def Multiply(self, T: gp_Trsf2d) -> None: ...
	def Power(self, N: int) -> None: ...
	def Powered(self, N: int) -> gp_Trsf2d: ...
	def PreMultiply(self, T: gp_Trsf2d) -> None: ...
	def RotationPart(self) -> float: ...
	def ScaleFactor(self) -> float: ...
	@overload
	def SetMirror(self, P: gp_Pnt2d) -> None: ...
	@overload
	def SetMirror(self, A: gp_Ax2d) -> None: ...
	def SetRotation(self, P: gp_Pnt2d, Ang: float) -> None: ...
	def SetScale(self, P: gp_Pnt2d, S: float) -> None: ...
	def SetScaleFactor(self, S: float) -> None: ...
	@overload
	def SetTransformation(self, FromSystem1: gp_Ax2d, ToSystem2: gp_Ax2d) -> None: ...
	@overload
	def SetTransformation(self, ToSystem: gp_Ax2d) -> None: ...
	@overload
	def SetTranslation(self, V: gp_Vec2d) -> None: ...
	@overload
	def SetTranslation(self, P1: gp_Pnt2d, P2: gp_Pnt2d) -> None: ...
	def SetTranslationPart(self, V: gp_Vec2d) -> None: ...
	def SetValues(self, a11: float, a12: float, a13: float, a21: float, a22: float, a23: float) -> None: ...
	@overload
	def Transforms(self) -> Tuple[float, float]: ...
	@overload
	def Transforms(self, Coord: gp_XY) -> None: ...
	def TranslationPart(self) -> gp_XY: ...
	def Value(self, Row: int, Col: int) -> float: ...
	def VectorialPart(self) -> gp_Mat2d: ...

class gp_Vec:
	@overload
	def __init__(self) -> None: ...
	@overload
	def __init__(self, V: gp_Dir) -> None: ...
	@overload
	def __init__(self, Coord: gp_XYZ) -> None: ...
	@overload
	def __init__(self, Xv: float, Yv: float, Zv: float) -> None: ...
	@overload
	def __init__(self, P1: gp_Pnt, P2: gp_Pnt) -> None: ...
	def Add(self, Other: gp_Vec) -> None: ...
	def Added(self, Other: gp_Vec) -> gp_Vec: ...
	def Angle(self, Other: gp_Vec) -> float: ...
	def AngleWithRef(self, Other: gp_Vec, VRef: gp_Vec) -> float: ...
	@overload
	def Coord(self, Index: int) -> float: ...
	@overload
	def Coord(self) -> Tuple[float, float, float]: ...
	def Cross(self, Right: gp_Vec) -> None: ...
	def CrossCross(self, V1: gp_Vec, V2: gp_Vec) -> None: ...
	def CrossCrossed(self, V1: gp_Vec, V2: gp_Vec) -> gp_Vec: ...
	def CrossMagnitude(self, Right: gp_Vec) -> float: ...
	def CrossSquareMagnitude(self, Right: gp_Vec) -> float: ...
	def Crossed(self, Right: gp_Vec) -> gp_Vec: ...
	def Divide(self, Scalar: float) -> None: ...
	def Divided(self, Scalar: float) -> gp_Vec: ...
	def Dot(self, Other: gp_Vec) -> float: ...
	def DotCross(self, V1: gp_Vec, V2: gp_Vec) -> float: ...
	def IsEqual(self, Other: gp_Vec, LinearTolerance: float, AngularTolerance: float) -> bool: ...
	def IsNormal(self, Other: gp_Vec, AngularTolerance: float) -> bool: ...
	def IsOpposite(self, Other: gp_Vec, AngularTolerance: float) -> bool: ...
	def IsParallel(self, Other: gp_Vec, AngularTolerance: float) -> bool: ...
	def Magnitude(self) -> float: ...
	@overload
	def Mirror(self, V: gp_Vec) -> None: ...
	@overload
	def Mirror(self, A1: gp_Ax1) -> None: ...
	@overload
	def Mirror(self, A2: gp_Ax2) -> None: ...
	@overload
	def Mirrored(self, V: gp_Vec) -> gp_Vec: ...
	@overload
	def Mirrored(self, A1: gp_Ax1) -> gp_Vec: ...
	@overload
	def Mirrored(self, A2: gp_Ax2) -> gp_Vec: ...
	def Multiplied(self, Scalar: float) -> gp_Vec: ...
	def Multiply(self, Scalar: float) -> None: ...
	def Normalize(self) -> None: ...
	def Normalized(self) -> gp_Vec: ...
	def Reverse(self) -> None: ...
	def Reversed(self) -> gp_Vec: ...
	def Rotate(self, A1: gp_Ax1, Ang: float) -> None: ...
	def Rotated(self, A1: gp_Ax1, Ang: float) -> gp_Vec: ...
	def Scale(self, S: float) -> None: ...
	def Scaled(self, S: float) -> gp_Vec: ...
	@overload
	def SetCoord(self, Index: int, Xi: float) -> None: ...
	@overload
	def SetCoord(self, Xv: float, Yv: float, Zv: float) -> None: ...
	@overload
	def SetLinearForm(self, A1: float, V1: gp_Vec, A2: float, V2: gp_Vec, A3: float, V3: gp_Vec, V4: gp_Vec) -> None: ...
	@overload
	def SetLinearForm(self, A1: float, V1: gp_Vec, A2: float, V2: gp_Vec, A3: float, V3: gp_Vec) -> None: ...
	@overload
	def SetLinearForm(self, A1: float, V1: gp_Vec, A2: float, V2: gp_Vec, V3: gp_Vec) -> None: ...
	@overload
	def SetLinearForm(self, A1: float, V1: gp_Vec, A2: float, V2: gp_Vec) -> None: ...
	@overload
	def SetLinearForm(self, A1: float, V1: gp_Vec, V2: gp_Vec) -> None: ...
	@overload
	def SetLinearForm(self, V1: gp_Vec, V2: gp_Vec) -> None: ...
	def SetX(self, X: float) -> None: ...
	def SetXYZ(self, Coord: gp_XYZ) -> None: ...
	def SetY(self, Y: float) -> None: ...
	def SetZ(self, Z: float) -> None: ...
	def SquareMagnitude(self) -> float: ...
	def Subtract(self, Right: gp_Vec) -> None: ...
	def Subtracted(self, Right: gp_Vec) -> gp_Vec: ...
	def Transform(self, T: gp_Trsf) -> None: ...
	def Transformed(self, T: gp_Trsf) -> gp_Vec: ...
	def X(self) -> float: ...
	def XYZ(self) -> gp_XYZ: ...
	def Y(self) -> float: ...
	def Z(self) -> float: ...

class gp_Vec2d:
	@overload
	def __init__(self) -> None: ...
	@overload
	def __init__(self, V: gp_Dir2d) -> None: ...
	@overload
	def __init__(self, Coord: gp_XY) -> None: ...
	@overload
	def __init__(self, Xv: float, Yv: float) -> None: ...
	@overload
	def __init__(self, P1: gp_Pnt2d, P2: gp_Pnt2d) -> None: ...
	def Add(self, Other: gp_Vec2d) -> None: ...
	def Added(self, Other: gp_Vec2d) -> gp_Vec2d: ...
	def Angle(self, Other: gp_Vec2d) -> float: ...
	@overload
	def Coord(self, Index: int) -> float: ...
	@overload
	def Coord(self) -> Tuple[float, float]: ...
	def CrossMagnitude(self, Right: gp_Vec2d) -> float: ...
	def CrossSquareMagnitude(self, Right: gp_Vec2d) -> float: ...
	def Crossed(self, Right: gp_Vec2d) -> float: ...
	def Divide(self, Scalar: float) -> None: ...
	def Divided(self, Scalar: float) -> gp_Vec2d: ...
	def Dot(self, Other: gp_Vec2d) -> float: ...
	def GetNormal(self) -> gp_Vec2d: ...
	def IsEqual(self, Other: gp_Vec2d, LinearTolerance: float, AngularTolerance: float) -> bool: ...
	def IsNormal(self, Other: gp_Vec2d, AngularTolerance: float) -> bool: ...
	def IsOpposite(self, Other: gp_Vec2d, AngularTolerance: float) -> bool: ...
	def IsParallel(self, Other: gp_Vec2d, AngularTolerance: float) -> bool: ...
	def Magnitude(self) -> float: ...
	@overload
	def Mirror(self, V: gp_Vec2d) -> None: ...
	@overload
	def Mirror(self, A1: gp_Ax2d) -> None: ...
	@overload
	def Mirrored(self, V: gp_Vec2d) -> gp_Vec2d: ...
	@overload
	def Mirrored(self, A1: gp_Ax2d) -> gp_Vec2d: ...
	def Multiplied(self, Scalar: float) -> gp_Vec2d: ...
	def Multiply(self, Scalar: float) -> None: ...
	def Normalize(self) -> None: ...
	def Normalized(self) -> gp_Vec2d: ...
	def Reverse(self) -> None: ...
	def Reversed(self) -> gp_Vec2d: ...
	def Rotate(self, Ang: float) -> None: ...
	def Rotated(self, Ang: float) -> gp_Vec2d: ...
	def Scale(self, S: float) -> None: ...
	def Scaled(self, S: float) -> gp_Vec2d: ...
	@overload
	def SetCoord(self, Index: int, Xi: float) -> None: ...
	@overload
	def SetCoord(self, Xv: float, Yv: float) -> None: ...
	@overload
	def SetLinearForm(self, A1: float, V1: gp_Vec2d, A2: float, V2: gp_Vec2d, V3: gp_Vec2d) -> None: ...
	@overload
	def SetLinearForm(self, A1: float, V1: gp_Vec2d, A2: float, V2: gp_Vec2d) -> None: ...
	@overload
	def SetLinearForm(self, A1: float, V1: gp_Vec2d, V2: gp_Vec2d) -> None: ...
	@overload
	def SetLinearForm(self, Left: gp_Vec2d, Right: gp_Vec2d) -> None: ...
	def SetX(self, X: float) -> None: ...
	def SetXY(self, Coord: gp_XY) -> None: ...
	def SetY(self, Y: float) -> None: ...
	def SquareMagnitude(self) -> float: ...
	def Subtract(self, Right: gp_Vec2d) -> None: ...
	def Subtracted(self, Right: gp_Vec2d) -> gp_Vec2d: ...
	def Transform(self, T: gp_Trsf2d) -> None: ...
	def Transformed(self, T: gp_Trsf2d) -> gp_Vec2d: ...
	def X(self) -> float: ...
	def XY(self) -> gp_XY: ...
	def Y(self) -> float: ...

class gp_XY:
	@overload
	def __init__(self) -> None: ...
	@overload
	def __init__(self, X: float, Y: float) -> None: ...
	def Add(self, Other: gp_XY) -> None: ...
	def Added(self, Other: gp_XY) -> gp_XY: ...
	def GetChangeCoord(self, theIndex: int) -> float: ...
	def SetChangeCoord(self, theIndex: int, value: float) -> None: ...
	@overload
	def Coord(self, Index: int) -> float: ...
	@overload
	def Coord(self) -> Tuple[float, float]: ...
	def CrossMagnitude(self, Right: gp_XY) -> float: ...
	def CrossSquareMagnitude(self, Right: gp_XY) -> float: ...
	def Crossed(self, Right: gp_XY) -> float: ...
	def Divide(self, Scalar: float) -> None: ...
	def Divided(self, Scalar: float) -> gp_XY: ...
	def Dot(self, Other: gp_XY) -> float: ...
	def IsEqual(self, Other: gp_XY, Tolerance: float) -> bool: ...
	def Modulus(self) -> float: ...
	@overload
	def Multiplied(self, Scalar: float) -> gp_XY: ...
	@overload
	def Multiplied(self, Other: gp_XY) -> gp_XY: ...
	@overload
	def Multiplied(self, Matrix: gp_Mat2d) -> gp_XY: ...
	@overload
	def Multiply(self, Scalar: float) -> None: ...
	@overload
	def Multiply(self, Other: gp_XY) -> None: ...
	@overload
	def Multiply(self, Matrix: gp_Mat2d) -> None: ...
	def Normalize(self) -> None: ...
	def Normalized(self) -> gp_XY: ...
	def Reverse(self) -> None: ...
	def Reversed(self) -> gp_XY: ...
	@overload
	def SetCoord(self, Index: int, Xi: float) -> None: ...
	@overload
	def SetCoord(self, X: float, Y: float) -> None: ...
	@overload
	def SetLinearForm(self, A1: float, XY1: gp_XY, A2: float, XY2: gp_XY) -> None: ...
	@overload
	def SetLinearForm(self, A1: float, XY1: gp_XY, A2: float, XY2: gp_XY, XY3: gp_XY) -> None: ...
	@overload
	def SetLinearForm(self, A1: float, XY1: gp_XY, XY2: gp_XY) -> None: ...
	@overload
	def SetLinearForm(self, XY1: gp_XY, XY2: gp_XY) -> None: ...
	def SetX(self, X: float) -> None: ...
	def SetY(self, Y: float) -> None: ...
	def SquareModulus(self) -> float: ...
	def Subtract(self, Right: gp_XY) -> None: ...
	def Subtracted(self, Right: gp_XY) -> gp_XY: ...
	def X(self) -> float: ...
	def Y(self) -> float: ...

class gp_XYZ:
	@overload
	def __init__(self) -> None: ...
	@overload
	def __init__(self, X: float, Y: float, Z: float) -> None: ...
	def Add(self, Other: gp_XYZ) -> None: ...
	def Added(self, Other: gp_XYZ) -> gp_XYZ: ...
	def GetChangeCoord(self, theIndex: int) -> float: ...
	def SetChangeCoord(self, theIndex: int, value: float) -> None: ...
	def ChangeData(self) -> float: ...
	@overload
	def Coord(self, Index: int) -> float: ...
	@overload
	def Coord(self) -> Tuple[float, float, float]: ...
	def Cross(self, Right: gp_XYZ) -> None: ...
	def CrossCross(self, Coord1: gp_XYZ, Coord2: gp_XYZ) -> None: ...
	def CrossCrossed(self, Coord1: gp_XYZ, Coord2: gp_XYZ) -> gp_XYZ: ...
	def CrossMagnitude(self, Right: gp_XYZ) -> float: ...
	def CrossSquareMagnitude(self, Right: gp_XYZ) -> float: ...
	def Crossed(self, Right: gp_XYZ) -> gp_XYZ: ...
	def Divide(self, Scalar: float) -> None: ...
	def Divided(self, Scalar: float) -> gp_XYZ: ...
	def Dot(self, Other: gp_XYZ) -> float: ...
	def DotCross(self, Coord1: gp_XYZ, Coord2: gp_XYZ) -> float: ...
	def GetData(self) -> float: ...
	def IsEqual(self, Other: gp_XYZ, Tolerance: float) -> bool: ...
	def Modulus(self) -> float: ...
	@overload
	def Multiplied(self, Scalar: float) -> gp_XYZ: ...
	@overload
	def Multiplied(self, Other: gp_XYZ) -> gp_XYZ: ...
	@overload
	def Multiplied(self, Matrix: gp_Mat) -> gp_XYZ: ...
	@overload
	def Multiply(self, Scalar: float) -> None: ...
	@overload
	def Multiply(self, Other: gp_XYZ) -> None: ...
	@overload
	def Multiply(self, Matrix: gp_Mat) -> None: ...
	def Normalize(self) -> None: ...
	def Normalized(self) -> gp_XYZ: ...
	def Reverse(self) -> None: ...
	def Reversed(self) -> gp_XYZ: ...
	@overload
	def SetCoord(self, X: float, Y: float, Z: float) -> None: ...
	@overload
	def SetCoord(self, Index: int, Xi: float) -> None: ...
	@overload
	def SetLinearForm(self, A1: float, XYZ1: gp_XYZ, A2: float, XYZ2: gp_XYZ, A3: float, XYZ3: gp_XYZ, XYZ4: gp_XYZ) -> None: ...
	@overload
	def SetLinearForm(self, A1: float, XYZ1: gp_XYZ, A2: float, XYZ2: gp_XYZ, A3: float, XYZ3: gp_XYZ) -> None: ...
	@overload
	def SetLinearForm(self, A1: float, XYZ1: gp_XYZ, A2: float, XYZ2: gp_XYZ, XYZ3: gp_XYZ) -> None: ...
	@overload
	def SetLinearForm(self, A1: float, XYZ1: gp_XYZ, A2: float, XYZ2: gp_XYZ) -> None: ...
	@overload
	def SetLinearForm(self, A1: float, XYZ1: gp_XYZ, XYZ2: gp_XYZ) -> None: ...
	@overload
	def SetLinearForm(self, XYZ1: gp_XYZ, XYZ2: gp_XYZ) -> None: ...
	def SetX(self, X: float) -> None: ...
	def SetY(self, Y: float) -> None: ...
	def SetZ(self, Z: float) -> None: ...
	def SquareModulus(self) -> float: ...
	def Subtract(self, Right: gp_XYZ) -> None: ...
	def Subtracted(self, Right: gp_XYZ) -> gp_XYZ: ...
	def X(self) -> float: ...
	def Y(self) -> float: ...
	def Z(self) -> float: ...

# harray1 classes
# harray2 classes
# hsequence classes

gp_DX = gp.DX
gp_DX2d = gp.DX2d
gp_DY = gp.DY
gp_DY2d = gp.DY2d
gp_DZ = gp.DZ
gp_OX = gp.OX
gp_OX2d = gp.OX2d
gp_OY = gp.OY
gp_OY2d = gp.OY2d
gp_OZ = gp.OZ
gp_Origin = gp.Origin
gp_Origin2d = gp.Origin2d
gp_Resolution = gp.Resolution
gp_XOY = gp.XOY
gp_YOZ = gp.YOZ
gp_ZOX = gp.ZOX
gp_QuaternionNLerp_Interpolate = gp_QuaternionNLerp.Interpolate
gp_QuaternionSLerp_Interpolate = gp_QuaternionSLerp.Interpolate
